home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / comm / boyan51a.zip / HOST.BSC < prev    next >
Text File  |  1993-11-15  |  22KB  |  558 lines

  1. \\ BOYAN HOST MODE Version 5.1.
  2. \\ Please see the BOYAN User's Manual for complete documentation!
  3.  
  4. |InitHost
  5. \IE-%AN,HOST[ \AM[H] ]
  6. \IE-%AN,HOST[\DM24[Unable to load HOST module.]\AB]
  7. \ZS  \ST[Invoking host in %V3 mode...]
  8. \DM1[ ╔═══════════════════════════════════════╗ ]
  9. \DM2[ ║     Host Mode Initializing...         ║ ]
  10. \DM3[ ╠═══════════════════════════════════════╣ ]
  11. \DM4[ ║     Press <Tab> for Sysop Menu.       ║ ]
  12. \DM5[ ║     Press <Esc> to quit Host Mode.    ║ ]
  13. \DM6[ ╚═══════════════════════════════════════╝ ]
  14. \CP[None] \BB- \AV[0] \KO[0] \SP[0] \SL[0]  \\ initialize host settings
  15. \SVU[%UN]  \IE+%UF,OFF[\SVU[]]       \\ save current usage file name in %VU
  16. \SVR[%AP]                            \\ save previous action module in %VR
  17. \UF+[%V4`HOST.USE]                   \\ use HOST.USE as the usage log file
  18. \UM[---- Host Mode Invoked -----]
  19. \MV1[7] \II-"\AF,%V1[\SM7["\AF"[%V1"]]  \\ This line checks to make sure
  20.                                         \\ that the \AF[blah..blah]
  21.                                         \\ command is included in macro #7
  22. \CA+[ \GB[Welcome] | \GB[WaitForCall]
  23.  
  24.  
  25. |WaitForCall
  26. \EC- \LF- \KO[0] \SVN[] \SVO[waiting]
  27. \IV3+LOCAL[\EC+ \LF+\SVI[41]\gb[local]]
  28. \IV3-MODEM[\GB[Welcome]]  \CA+[\GB[Welcome]]
  29. \CS[%MM] \MA[3]                      \\ Change speed to modem's maximum.
  30. AT&C1&D2X4S0=0{                      \\ Tell modem not to auto-answer.
  31. \WF[OK]~~                            \\ Expect "OK" message back from modem.
  32. \DM1[ ╔═══════════════════════════════════════╗ ]
  33. \DM2[ ║     Host Mode Waiting for RING...     ║ ]
  34. \DM3[ ╠═══════════════════════════════════════╣ ]
  35. \DM4[ ║     Press <Tab> for Sysop Menu.       ║ ]
  36. \DM5[ ║     Press <Esc> to quit Host Mode.    ║ ]
  37. \DM6[ ╚═══════════════════════════════════════╝ ]
  38. \TO[255]  \WF[RING]                  \\ Wait forever for "RING"
  39. \TO[7]  \SV0[%V2]  \+V0[-1]          \\ let %V0 = tot. number of rings - 1
  40. \RE%V0[\WF[RING] \IW-[\GB[WaitForCall]] ]  \\ Wait for %V0 additional rings.
  41. ~ATA{~                                \\ Tell modem to establish connection.
  42. \TO[45]\WL\WP[1]
  43. \IF+MNP[\CS[%MM]\sv9[x]\GB[Welcome]]  \\ Setting port speed for modem
  44. \IF+ARQ[\CS[%MM]\sv9[x]\GB[Welcome]]  \\             .
  45. \IF+LAP[\CS[%MM]\sv9[x]\GB[Welcome]]  \\             .
  46. \IF+HST[\CS[%MM]\sv9[x]\GB[Welcome]]  \\             .
  47. \IF+38[\CS[%MS]~ \GB[Welcome]]        \\             .
  48. \IF+19[\CS[%MS]~ \GB[Welcome]]        \\             .
  49. \IF+96[\CS[%MS]~ \GB[Welcome]]        \\             .
  50. \IF+48[\CS[%MS]~ \GB[Welcome]]        \\             .
  51. \IF+24[\CS[%MS]~ \GB[Welcome]]        \\             .
  52. \IF+12[\CS[%MS]~ \GB[Welcome]]        \\             .
  53. \CS[%MS]~\GB[Welcome]                 \\             .
  54.  
  55. |Local
  56. \zs Welcome Sysop! {{
  57. \SV3[LOCAL]
  58. \TVA[%VI]  \ii-;,%VA[\gb[welcome]]
  59. \SVN[%VA]  \II+;,%VN[\LVN[%IM]]
  60. \SVF[%VN]  \II+ ,%VF[\LVF[%IM]]
  61. \SVP[%VA]  \II+;,%VA[\DVP[%II]]  \II-;,%VP[\EM]
  62. \SVL[%VP]  \LVP[%IM]
  63. \DVL[%II]  \II-;,%VL[\EM]
  64. \SVE[%VL]  \LVL[%IM]
  65. \DVE[%II]  \II-"|.%VE[\EM]
  66. \II+"|,%VE[\LV0[%IM]]
  67. Enter your password: `\RV0*[15]
  68. \IV0-%VP[\SVN[]{{ OK,{{You'll have to do it the hard way <G>!{{\gb[welcome]] \\ wrong password
  69. \SN[%VN]  \SVO[online]
  70. \bl[StartTime] \gb[menu]
  71.  
  72. |Welcome
  73. \EC+ \LF+ \CS[%MS]
  74. \IV3+MODEM[\AV[6] \AL2[1] \AV[0] \PA[3] \PL]
  75. {{{
  76. Welcome to BOYAN 5.1 Host!{{
  77. \ie+%V9,X[{(Error Correcting Modem Detected)]
  78. \DM1[ ╔═══════════════════════════════════════╗ ]
  79. \DM2[ ║     Host Mode Logging user in...      ║ ]
  80. \DM3[ ╠═══════════════════════════════════════╣ ]
  81. \DM4[ ║     Press <Tab> for Sysop Menu.       ║ ]
  82. \DM5[ ║     Press <Esc> to quit Host Mode.    ║ ]
  83. \DM6[ ╚═══════════════════════════════════════╝ ]
  84. \TO[40] Press <Enter> to begin: `{
  85. \rvy[1]{{\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
  86. \IW-[\GB[LogOff]] \SVX[OFF] \sv1[]   \\ if no response, log user off!
  87. Welcome to BOYAN Communications 5.0{{
  88. \FE+%V4`WELCOME.MSG[\svz[%V4`WELCOME.MSG] \bl[list]]  \\ Send "WELCOME.MSG"
  89. \PL \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]] \BL[GetName&PW] \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
  90. \IVN+[Try again.{ \BL[GetName&PW]]\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
  91. \IVN+[Last try!{  \BL[GetName&PW]]\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
  92. \IVN+[\GB[WrongPassword]]
  93. \SN[%VN]  \SVO[online] \bl[startTime]
  94. \gb[MENU]
  95.  
  96. |GetName&PW
  97. \SV0[] \SVP[] \SVL[1] \SVE[] {   \\ user level set to 1
  98. \\SV0[] \SVP[] \SVL[0] \SVE[] {  \\ user level set at 0
  99. Enter your FIRST & LAST name: `
  100. \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]] \RVN[50]  \IVN+[\EB]
  101. \SVF[%VN] \II+ ,%VF[\LVF[%IM]]            \\ set %VF = user's First name
  102. \SV0[%VN] \DV0[%II]
  103. \II+ ,%V0[\LV0[%IM] \SVN[%VF `%V0] \SV0[] | \SV0[] ]
  104. \II+;,%VN[\SV0[%VN] \DV0[%II] \LVN[%IM] ] \\ parse "First Last;password"
  105. Searching  \SVI[40] \BL[SearchUserBase]{\iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
  106. \IVI+111[\GB[UserNotFound]]
  107. \IVP+[No password for you in database!{ \SVN[] \EB ]
  108. \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]] \UM[Logged in Host User %VI: %VN]
  109. \IV0+[Enter your password: `\RV0*[15]]
  110. \iv3+modem[\CA-[\PL\HU\GB[WaitForCall]]]
  111. \IV0-%VP[\bl[secondtry]\IV0-%VP[\SVN[]]]   \\ wrong password
  112.  
  113. |Secondtry
  114. Wrong password, try again.{{Enter your password: `\RV0*[15]
  115.  
  116. |SearchUserBase                      \\ Search for %VN; set %VP=pwd, %VL=level.
  117. \RE[\+VI[1] \IVI+111[\EB] .\TVA[%VI] \II+;,%VA[\EM]]  \\ loop until `;' in %VA
  118. \SVP[%VA]  \LVA[%IM]                 \\ trim off name portion into %VA
  119. \IVA-%VN[\GB[SearchUserBase] |else \SVN[%VA]]
  120. \DVP[%II]  \II-;,%VP[\EB]            \\ if no ';' in remainder, we're done.
  121. \SVL[%VP]  \LVP[%IM]                 \\ trim off only password portion into %VP
  122. \DVL[%II]  \II-;,%VL[\EB]
  123. \SVE[%VL]  \LVL[%IM]                 \\ trim off user level portion into %VL
  124. \DVE[%II]  \II-"|.%VE[\EB]           \\ %VE contains rest of user base entry
  125. \LVL[%IM]
  126.  
  127. |UserNotFound
  128. Did you enter your name correctly as '%VN' (y/N) ? `\RV8[1]
  129. \IV8-Y[\SVN[] \EB]
  130. \SV8[41] \SVI[none]
  131. \RE[\TV9[%V8] \II-;,%V9[\SVI[%V8] \EM] \+V8[1] ]  \\ search user base for blank #
  132. \IVI+none[Sorry, user base is full! {\EB]
  133. %VF, you will be registered as user #%VI.{
  134. Please choose a password for this system :> `
  135. \RVP*[15]
  136. \IVP+[Blank passwords are not allowed.{{\GB[UserNotFound]]
  137. Type your password again to confirm: `
  138. \RV9*[15]
  139. \IE-%VP,%V9[Your passwords didn't match!{\GB[UserNotFound]]
  140. \UM[** New Host User %VI ** %VN, level %VL]
  141. \SVE[ first called on %MO/%DA/%YR at %HR:%MI]
  142. \af%V4Userdata.fil[`                `++++++++++++++++++++++++++++++++++++++++++++]
  143. \af%V4Userdata.fil[User # %VI, %VN, %Vp, %VE]
  144. \af%V4Userdata.fil[%VN]
  145. \TM%VI[%VN;%VP;%VL;%VE]              \\ add entry to user base
  146.  
  147. |StartTime
  148. \SVS[]\SVT[]\SVK[]       \\ Clears timer variables
  149. \SVS[%hr] \SVT[%MI]      \\ sets hour and minute counters
  150. \IVL+0[\SVK[30]]         \\ sets user level time limits
  151. \IVL+1[\SVK[50]]         \\            .
  152. \IVL+2[\SVK[75]]         \\            .
  153. \IVL+3[\SVK[90]]         \\            .
  154. \IVL+4[\SVK[120]]        \\            .
  155. \+VK[%MI]\SVK[%VK]       \\            .
  156.  
  157. |Timer
  158. \SVT[%MI] \ie-%VS,%HR[\+vt[60]]
  159. \SV0[%VK] \+V0[-%VT] \ii+-,%v0[Sorry, your time limit has expired!{\sv0[x]]
  160.  
  161.  
  162. |MENU
  163. \ST[ » Press <Tab> for Sysop Menu. «] \KO[0]
  164. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  165. \IVL+0[\svc[LRFZCONXG]]     \\ sets the available commands for each user level
  166. \IVL+1[\svc[LERFDUZCONXG]]
  167. \IVL+2[\svc[LERKFDUZCOJNXGS]]
  168. \IVX+ON[Boyan-Host Expert Menu <%VC> {  \GB[MenuDispatch] ]
  169. {`````````============================{
  170. ``````````  Boyan-Host Command Menu{
  171. ``````````----------------------------{
  172. \II+L,%VC[ <L> List message titles{]
  173. \II+E,%VC[ <E> Enter a new message{]
  174. \II+R,%VC[ <R> Read a message{]
  175. \II+K,%VC[ <K> Kill a message{]
  176. \II+C,%VC[ <C> Comment to operator{]
  177. ``````````----------------------------{
  178. \II+F,%VC[ <F> File listing{]
  179. \II+D,%VC[ <D> Download files{]
  180. \II+U,%VC[ <U> Upload files{]
  181. \II+Z,%VC[ <Z> ZIP file contents{]
  182. \II+J,%VC[ <J> Jump to DOS{]
  183. ``````````----------------------------{
  184. \II+O,%VC[ <O> Operator page{]
  185. \II+N,%VC[ <N> New password{]
  186. \II+X,%VC[ <X> Expert mode toggle{]
  187. \II+G,%VC[ <G> Goodbye{]
  188. \II+S,%VC[ <S> Shut down host!{]
  189. ``````````============================{
  190. \GB[MenuDispatch]
  191.  
  192. |MenuDispatch
  193. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  194. \bl[timer]" Time remaining this call %V0 min.{
  195. Your selection: `\RV0[1]
  196. \II-%V0,%VC[Sorry, <%V0> is not a valid option.{\GB[Menu]]
  197. \IV0+L[\GB[ListMsgs]]
  198. \IV0+E[\GB[EnterMsg]]
  199. \IV0+C[\GB[EnterComment]]
  200. \IV0+R[\GB[ReadMsg]]
  201. \IV0+K[\GB[KillMsg]]
  202. \IV0+F[\GB[ListFiles]]
  203. \IV0+D[\GB[Download]]
  204. \IV0+U[\GB[Upload]]
  205. \IV0+Z[\GB[ZipView]]
  206. \IV0+O[\GB[OperatorPage]]
  207. \IV0+J[\GB[Shell]]
  208. \IV0+N[\GB[NewPassword]
  209. \IV0+X[\GB[ToggleExpert]
  210. \IV0+G[\GB[LogOff]]
  211. \IV0+S[\GB[Shutdown]]
  212. \GB[Menu]
  213.  
  214. |ListMsgs
  215. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  216. Available messages:{
  217. \DC[dir %V4*.msg /W > %B:#hosttmp.fil] \\ use DOS to list messages to file
  218. \svz[%B:#hosttmp.fil] \bl[list]        \\ List file contents to screen
  219. \GB[Menu]
  220.  
  221. |EnterMsg
  222. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  223. Type a name for your message (1-8 letters): ________^H^H^H^H^H^H^H^H
  224. \RV0[8]                              \\ read in message name of up to 8 chars
  225. \SV0[%V4%V0.msg]                     \\ make %V0 = full path\filename.msg
  226. \FE+%V0[That message already exists.{ \GB[Menu]]
  227. \GB[MsgHeader]
  228.  
  229. |EnterComment
  230. Leaving a private comment for the System Operator...{
  231. \SV0[%V4#comment.tmp]
  232. \FE+%V0[\DC[DEL %V0]]       \\ delete #comment.tmp if it already exists
  233. \GB[MsgHeader]
  234.  
  235. |MsgHeader
  236. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  237. \SV9[=========== From: %VN ==== %MO/%DA at %HR:%MI ===========]
  238. \AF%V0[%V9]
  239. \FE-%V0[Unable to create message file %V0.{  \GB[Menu]]
  240. \AF%V0[]
  241. Enter your message.  Hit <Return> on empty line when message is complete.{{
  242. %V9{{
  243. \TO[100]                             \\ set 100-second timeout for each line
  244. \SV9[1]                              \\ line number counter, starts at 1
  245. \GB[GetMsgLines]
  246.  
  247. |GetMsgLines
  248. \RE[%V9>"  \RV8+[70]  \IV8+[\EM]  \AF%V0[%V8]  \+V9[1]]
  249. \GB[EnterOptions]
  250.  
  251. |EnterOptions
  252. {Message options:  [A]bort, [C]ontinue, [L]ist, or [S]ave ? `
  253. \RV8[1]
  254. \IV8+A[\DC[del %V0]  Message aborted.{  \GB[Menu] ]
  255. \IV8+S[\IV0+%V4#comment.tmp[\GB[SaveComment]]]
  256. \IV8+S[Message saved.{  \UM[| Posted %V0]  \GB[Menu] ]
  257. \IV8+C[\GB[GetMsgLines]]
  258. \IV8+L[{ \SVZ[%V0] \bl[list] ]
  259. \GB[EnterOptions]
  260.  
  261. |SaveComment
  262. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  263. Comment saved.{
  264. \UM[| Left comment to operator]
  265. \AF%V0[]
  266. \SV1[%V4`COMMENTS.HOS]
  267. \FE-%V1[\DC[ren %V0 COMMENTS.HOS] | \DC[type %V0 >> %V1] \DC[del %V0] ]
  268. \GB[Menu]
  269.  
  270. |ReadMsg
  271. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  272. Name of message to read: `\RV0[8]
  273. \SV0[%V4`%V0.msg]                    \\ expand name to path\filename.msg
  274. \FE-%V0[That message does not exist.{ \GB[Menu]]
  275. \svz[%V0] \bl[list]  \\ List file contents to screen
  276. \GB[Menu]
  277.  
  278. |KillMsg
  279. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  280. Name of message to kill: `\RV0[8]
  281. \SV0[%V4%V0.msg]                     \\ expand name to path\filename.msg
  282. \FE-%V0[That message does not exist.{ \GB[Menu]]
  283. \DC[DEL %V0]
  284. Message file %V0 deleted.{
  285. \GB[Menu]
  286.  
  287. |ToggleExpert
  288. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  289. \IVX+ON[\SVX[OFF] |ELSE \SVX[ON]]
  290. \GB[Menu]
  291.  
  292. |List
  293. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  294. \gv[]\ST[ » Press <Tab> for Sysop Menu. «]\sv1[0] \sv8[]
  295. \re[\IV8+S[\em] \gv0[%VZ] \ii+^z,%v0[\em] %v0{ \+v1[1] \IV1+23[ \bl[prompts]]
  296. {Hit ENTER to continue  \RV[1]
  297. \GV[]
  298.  
  299. |prompts
  300. \iv3+modem[\ca-[\gb[cycle]]]
  301. \IV8+X[\eb]
  302. "     " <More> <Quit> <Non-Stop> ` \rv1[1]
  303. \IV1+M[\SV1[0]]
  304. \IV1+Q[\SV1[0]\sv8[S]]
  305. \IV1+N[\SV1[0]\sv8[x]]
  306. \IV1+[\SV1[0]]
  307.  
  308.  
  309.  
  310. |ListFiles                           \\ list files in host directory
  311. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  312. Files available for downloading:{
  313. \DC[dir %V5*.* > %B:#hosttmp.fil]    \\ use DOS to create list in temp. file
  314. \svz[%B:#hosttmp.fil] \bl[list]  \\ List file contents to screen
  315. \GB[Menu]
  316.  
  317. |Download
  318. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  319. \BL[SetProtocol]                     \\ selected protocol stored in %V9
  320. \IV9+Q[\GB[Menu]]                    \\ back to files menu if no protocol
  321. Enter name of file to download: `
  322. \RV0[38]{                            \\ read filename into %V0
  323. \II+"\,%V0[\IVL-2[\GB[Menu]]]        \\ need user level = 2 if "\" in filename
  324. \II-"\,%V0[\SV0[%V5%V0]]             \\ Otherwise, add host file path to name.
  325. \II-*,%V0[\II-?,%V0[\FE-%V0[File not found.{ \GB[Menu] ]]]
  326. Sending:  %V0{
  327. Protocol: <%V9>{
  328. Start the download on your end now.{
  329. \IV9+A[Press <Return> when ready: \WL{] \\ expect <CR> if ASCII download
  330. \UL%V9-[%V0]                         \\ send file %V0 using protocol %V9
  331. \IV9+A[^K]                           \\ send <Ctrl-K> to close ASCII download
  332. { Download `\IT+[successful. |ELSE unsuccessful.]  {
  333. \GB[Menu]
  334.  
  335. |Upload
  336. \BL[SetProtocol]                     \\ selected protocol stored in %V9
  337. \IV9+Q[\GB[Menu]]                    \\ back to files menu if no protocol
  338. Enter name of file to upload: `
  339. \RV0[38]{
  340. \IV0+[\GB[Menu]]                     \\ back to menu if no filename entered
  341. \II+"\,%V0[\IVL-2[\GB[Menu]]]        \\ if "\" in filename, require level 2
  342. \II-"\,%V0[\SV0[%V5%V0]]             \\ Otherwise, add host file path to name.
  343. \II-.,%V0[\SV0[%V0.]]                \\ Add "." to filename if not there
  344. \FE+%V0[File already exists.{ \GB[Menu]] \\ go back if file already here
  345. Receiving: %V0{
  346. Protocol:  [%V9]{
  347. Start the upload on your end now.{
  348. \PA[3]                               \\ wait 3 secs before expecting file
  349. \DL%V9-[%V0]                         \\ receive file %V0 using protocol %V9
  350. { Upload `\IT+[successful. |ELSE unsuccessful.]  {
  351. \GB[Menu]
  352.  
  353. |SetProtocol            \\ returns the protocol letter selected, in %V9
  354. \SV8[AXC1YG]                       \\ set %V8=all possible protocol letters
  355. \IP+K[\SV8[%V8`K]]                 \\ add 'K' to list if Kermit available
  356. \IP+L[\SV8[%V8`L]]                 \\ add 'L' to list if Megalink available
  357. \IP+P[\SV8[%V8`P]]                 \\ add 'P' to list if MPt available
  358. \IP+S[\SV8[%V8`S]]                 \\ add 'S' to list if Sealink available
  359. \IP+Z[\SV8[%V8`Z]]                 \\ add 'Z' to list if Zmodem available
  360. ``````````=================={
  361. `````````` Protocol Choices{
  362. ``````````------------------{
  363. \II+A,%V8[ <A> ASCII{]
  364. \II+C,%V8[ <C> CRC-Xmodem{]
  365. \II+G,%V8[ <G> G-Ymodem{]
  366. \II+K,%V8[ <K> Kermit{]
  367. \II+L,%V8[ <L> Megalink{]
  368. \II+P,%V8[ <P> MPt{]
  369. \II+S,%V8[ <S> Sealink{]
  370. \II+X,%V8[ <X> Xmodem{]
  371. \II+Y,%V8[ <Y> Ymodem{]
  372. \II+Z,%V8[ <Z> Zmodem{]
  373. \II+1,%V8[ <1> 1K-Xmodem{]
  374. `````````` <Q> QUIT{
  375. ``````````=================={
  376. Your selection: `\RV9[1]
  377. \IV9+Q[\EB]
  378. \II+%V9,%V8[\EB]                   \\ if selection is ok, then end block.
  379. Sorry, protocol <%V9> is not available.{
  380. \GB[SetProtocol]
  381.  
  382. |ZipView
  383. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  384. Available .ZIP files:{
  385. \DC[dir %V5*.zip /w > %B:#hosttmp.fil]
  386. \svz[%B:#hosttmp.fil] \bl[list]  \\ List file contents to screen
  387. Enter name of ZIP file to view: `
  388. \RV9[8]  \SV9[%V5%V9]
  389. \FE-%V9.ZIP[File '%V9.ZIP' doesn't exist.{ \GB[Menu]]
  390. \DC[pkunzip -v %V9 > %B:#hosttmp.fil]
  391. \svz[%B:#hosttmp.fil] \bl[list]  \\ List file contents to screen
  392. \GB[Menu]
  393.  
  394. |OperatorPage
  395. \iv3+modem[\ca-[\gb[cycle]]]\SV1[]
  396. \II+%HR,01,02,03,04,05,06,07,08[Operator not available at this hour!{\GB[Menu]]
  397. Paging operator for 20 seconds ...{
  398. \SV8[%VF]  \LV8[10]   \\ set %V8 = first 10 letters of caller's first name
  399. \DM1[ ╔═══════════════════════════════════════╗ ]
  400. \DM2[ ║  Host Mode       OPERATOR BEING PAGED ║ ]
  401. \DM3[ ╠═══════════════════════════════════════╣ ]
  402. \DM4[ ║   <G>  = Gossip with %V8```````       ║ ]
  403. \DM5[ ║  <Tab> = SYSOP Menu                   ║ ]
  404. \DM6[ ║  <Esc> = ABORT Host Mode              ║ ]
  405. \DM7[ ║  Any other key if 'not available now'.║ ]
  406. \DM8[ ╚═══════════════════════════════════════╝ ]
  407. \AV[7]  \AL2[20]  \AV[0] {{
  408. \RE[\IK+[\EM]]            \\ Wait for any (local) keypress.  If key='G', go to
  409. \IE+%IK,G[\GB[Gossip]]    \\ Gossip block. (Tab&Esc are handled as interrupts.)
  410. Sorry, the operator isn't available now.{
  411. \GB[Menu]
  412.  
  413. |Gossip
  414. \gb[chat]
  415.  
  416. |Chat
  417. \UM[| Chated with sysop ]
  418. \ZS{Chat between @VF and Sysop {{Hello? {{
  419. \TO[100]                           \\ set 100-second timeout for each line
  420. \gb[ChatLines]                     \\ get message, line-by-line
  421.  
  422. |ChatLines
  423. \iv3+modem[\ca-[\gb[cycle]]]
  424. \ST[ » Press < "/ > to End Chat «] \KO[0]
  425. \re[\IV8+"/[\em] \RV8+[74] \IV8+"/[\em]   ]               \\ read line of text into %V8
  426. \GB[Menu]                                     \\ ... and loop back for more.
  427.  
  428. |Shell
  429. \UM[|   Host user Jumped to DOS.]
  430. {{
  431. \IV3+LOCAL[\JD \GB[Menu]]      \\ if Local Host test, just Jump to DOS.
  432. \FE+%B:DOORWAY.EXE[\GB[Doorway]]     \\ Branch if doorway.exe found.
  433. Type "EXIT" to return to BOYAN-Host.{
  434. \SV0[%B:#hosttmp.bat]          \\ Create a new batch file #HOSTTMP.BAT
  435. \FE+%V0[\DC[del %V0]]          \\ which has three lines:
  436. \AF%V0[CTTY COM%MD]            \\   CTTY COM1    (or COM2,COM3,COM4)
  437. \AF%V0[COMMAND]                \\   COMMAND
  438. \AF%V0[CTTY CON]               \\   CTTY CON
  439. \DC[%B:#hosttmp]               \\ Then execute the batch file.
  440. \GB[Menu]
  441.  
  442. |Doorway
  443. Switch into the DOORWAY module of your communications program now, %VF.{
  444. \DC[%B:DOORWAY COM%MD /V:D /L: /M:60 /S:* /C:dos]  \\ invoke DOORWAY 60mins
  445. \GB[Menu]
  446.  
  447. |Shutdown
  448. Are you sure you want to Shut Down the host (y/N) ? `
  449. \RV0[1]{
  450. \IV0-Y[\GB[Menu]]
  451. BOYAN Host shut down.{
  452. \IV3+MODEM[\PA[2]\HU]          \\ Pause & hang up.
  453. \PA[2]                         \\ 2-second pause...
  454. \AB                            \\ Abort script (goes to *WRAPUP block)
  455.  
  456. |NewPassword
  457. Please type your current password (asterisks will echo): `
  458. \RV8*[15]
  459. \IV8-%VP[Wrong password!{  \GB[Menu]]
  460. Type the new password you would like: `
  461. \RV8*[15]
  462. \IV8+[Blank passwords are not allowed.{  \GB[Menu]]
  463. Type this password again to confirm: `
  464. \RV9*[15]
  465. \IE-%V8,%V9[Your passwords didn't match!{  \GB[Menu]]
  466. \UM[| Caller changed password]
  467. Your password has been changed.{
  468. \SVP[%V8]
  469. \TM%VI[%VN;%VP;%VL;%VE]        \\ store change in host user base
  470. \GB[Menu]
  471.  
  472. |WrongPassword
  473. Sorry, too many attempts.{
  474. \UM[| Incorrect password '%V0'; user denied entrance.]
  475. \GB[LogOff]
  476.  
  477. |LogOff
  478. {Thank you for using BOYAN host!{{
  479. \IV3+MODEM[\PA[5]\HU~~~]
  480. \GB[Cycle]
  481.  
  482. |Cycle                         \\ This block runs between all calls.
  483. \IV3+MODEM[\HU  \PL]           \\ hang up & purge line if MODEM connection
  484. \DM1,[Host cycled %VN at %HR:%MI.]
  485. \UM[| Disconnected after %SL]  \\ add host.use message
  486. \PA[3] \SVN[] \SN[]            \\ Erase the username from %VN
  487. \GB[WaitForCall]
  488.  
  489. |*TAB                          \\ This runs automatically when <Tab> pressed
  490. \IVO+waiting[\sv9[FHJVWPRST]]  \\ available menu options if no caller logged in
  491. \IVO+in-use[\sv9[CFGHJLVWPRST]]\\ available menu options if caller IS logged in
  492. \IE-%AN,HOST[\AM[H]\EC+\LF+]   \\ make sure we're using Host module
  493. \IV3+MODEM[\PL]
  494. \SV8[%VF]  \LV8[10]   \\ set %V8 to caller's first name (10 letters)
  495. \KS  \SV0[3]
  496. ``````````\DM12,%V0[ ╔═══════════════════════════════════════╗ ]  \+V0[1]
  497. ``````````\DM12,%V0[ ║ SYSOP MENU    %HR:%MI   Boyan Host Mode ║ ]  \+V0[1]
  498. ``````````\DM12,%V0[ ╠═══════════════════════════════════════╣ ]  \+V0[1]
  499. \II+C,%V9[\DM12,%V0[ ║ <C> = Cycle Host (Hang Up)            ║ ]  \+V0[1] ]
  500. \II+F,%V9[\DM12,%V0[ ║ <F> = DOS File Manager                ║ ]  \+V0[1] ]
  501. \II+G,%V9[\DM12,%V0[ ║ <G> = Gossip with %V8```````          ║ ]  \+V0[1] ]
  502. \II+H,%V9[\DM12,%V0[ ║ <H> = Host configuration section      ║ ]  \+V0[1] ]
  503. \II+J,%V9[\DM12,%V0[ ║ <J> = Jump to DOS                     ║ ]  \+V0[1] ]
  504. \II+L,%V9[\DM12,%V0[ ║ <L> = Change caller's user Level      ║ ]  \+V0[1] ]
  505. \II+P,%V9[\DM12,%V0[ ║ <P> = Change modem Parameters         ║ ]  \+V0[1] ]
  506. \II+S,%V9[\DM12,%V0[ ║ <S> = Scroll-back buffer              ║ ]  \+V0[1] ]
  507. \II+T,%V9[\DM12,%V0[ ║ <T> = Toggle 43/50-line mode (EGA/VGA)║ ]  \+V0[1] ]
  508. \II+V,%V9[\DM12,%V0[ ║ <V> = View HOST.USE usage log         ║ ]  \+V0[1] ]
  509. \II+W,%V9[\DM12,%V0[ ║ <W> = View COMMENTS.HOS comment file  ║ ]  \+V0[1] ]
  510. ``````````\DM12,%V0[ ╟───────────────────────────────────────╢ ]  \+V0[1]
  511. \II+R,%V9[\DM12,%V0[ ║ <R> = RESUME Host Mode                ║ ]  \+V0[1] ]
  512. ``````````\DM12,%V0[ ║<Esc>= ABORT Host Mode                 ║ ]  \+V0[1]
  513. ``````````\DM12,%V0[ ╚═══════════════════════════════════════╝ ]
  514. \KO[30]  \BB+  \KV0_[SYSOP OPTION: ]  \BB-  \RS
  515. \II-%V0,%V9[\GB[*TAB]]
  516. \IV0+R[\ST[Continuing script...] \IVO+in-use[\GB[Menu] | \GB[WaitForCall]] ]
  517. \IV0+C[\GB[LogOff]]
  518. \IV0+G[\GB[Gossip]]
  519. \IV0+L[\GB[ChangeUserLevel]]
  520. \IV0+F[\FM[%V4]]
  521. \IV0+H[\CB[A] \IE-%AN,HOST[\AM[H]] ]
  522. \IV0+J[\JD]
  523. \IV0+P[\CM]
  524. \IV0+W[\DC+[%LC %V4`COMMENTS.HOS]]
  525. \IV0+S[\RB]
  526. \IV0+T[\GL*]
  527. \IV0+V[\DC+[%LC %UN]]
  528. \GB[*TAB]
  529.  
  530. |ChangeUserLevel
  531. \KS
  532. \DM1[ ╔═══════════════════════════════════════╗ ]
  533. \DM2[ ║      Setting Caller's User Level      ║ ]
  534. \DM3[ ╠═══════════════════════════════════════╣ ]
  535. \DM4[ ║  <0> - New user  (limited access)     ║ ]
  536. \DM5[ ║  <1> - Regular   (messages & files)   ║ ]
  537. \DM6[ ║  <2> - SYSOP     (Jump to DOS, etc.)  ║ ]
  538. \DM7[ ║  ( Press <Esc> to quit Host Mode. )   ║ ]
  539. \DM8[ ╚═══════════════════════════════════════╝ ]
  540. \KVL%VL[New level for %VF: ]  \RS
  541. {%VF, your user level is now %VL.{
  542. \TM%VI[%VN;%VP;%VL;%VE]              \\ store change in host user base
  543. \GB[Menu]
  544.  
  545. |*WRAPUP
  546. \IE-%AN,HOST[\EB]
  547. \DM1[ ╔═══════════════════════════════════════╗ ]
  548. \DM2[ ║          Host Mode Finished.          ║ ]
  549. \DM3[ ╠═══════════════════════════════════════╣ ]
  550. \DM4[ ║                                       ║ ]
  551. \DM5[ ║    Press <Alt-I> to re-invoke host.   ║ ]
  552. \DM6[ ╚═══════════════════════════════════════╝ ]
  553. \UF-  \IVU-[\UF+[%VU]]               \\ close HOST.USE log; reopen prev. log.
  554. \BB+ \AV[7]                          \\ sound effects back on
  555. \AM[%VR]                             \\ change back to previous action module
  556. \SV1[\AL3[0"]  \RC  \SK-  \UM[| Disconnected after "%SL"]]
  557.  
  558.